/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.ekaaty.controller;

import br.com.ekaaty.bean.Evento;
import br.com.ekaaty.business.EventoBusiness;
import br.com.ekaaty.dao.EventoDao;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

/**
 *
 * @author otavio
 */
@ManagedBean
@SessionScoped
public class EventoController extends GenericController<Evento> {

    public DataModel getTodos()
            throws Exception {
        EventoDao dao = new EventoDao();
        data = new ListDataModel(dao.listarAtuais());
        System.out.println("O valor foi enviado do Datamodel do Faculdade");
        return data;


    }

    public void update() {
        EventoBusiness eventoBusiness = new EventoBusiness();
        boolean salvo = eventoBusiness.update(bean);
        if (salvo) {
               FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Sucesso", "Evento Editado Com sucesso"));
            limpar();
        }else{
        
        }

    }

    public void salvar() {
        EventoBusiness eventoBusiness = new EventoBusiness();
        boolean salvo = eventoBusiness.adicionar(bean);
        if (salvo) {
              FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Sucesso", "Evento Criado Com sucesso"));
            limpar();
        }
        else if(eventoBusiness.duplicado(bean)){
              FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, "Dado cadastrado", "Esse evento já existe no banco de dados"));
        }
        else if(eventoBusiness.vazio(bean)){

            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erro", "Preencha todos os dados"));

        }

    }

    public DataModel getData() {
        return data;
    }

    public void setData(DataModel data) {
        this.data = data;
    }

    public void limpar() {
        bean = new Evento();

    }

    public void excluir() {
        EventoDao dao = new EventoDao();
        dao.remover(bean);
    }

    @Override
    public Evento initBean() {
        return new Evento();
    }

    @Override
    public void selecionado() {
       bean = (Evento) data.getRowData();
        System.out.println("selecionado " + bean.getNome());
    }
}
